package com.ace.model.bo;

/***********************************************************************
 * Module:  Responsable.java
 * Author:  a.kanwar
 * Purpose: Defines the Class Responsable
 ***********************************************************************/

import java.util.*;


public class Responsable extends Utilisateur{
 
    
   /********************************************************
     * attribute
   ********************************************************/ 
    
   private java.util.Collection<Agence> agence;
   private Utilisateur utilisateur;

   /******************************************************************
   * Constructor
   *******************************************************************/
    
    public Responsable(Collection<Agence> agence, Utilisateur utilisateur, int idUtil, String nom, String prenom, String dateDeNaissance, String adresse, int codePostal, String ville, String login, String mdp) {
        super(idUtil, nom, prenom, dateDeNaissance, adresse, codePostal, ville,  login, mdp);
        this.agence = agence;
        this.utilisateur = utilisateur;
    }

    public Responsable(Collection<Agence> agence, Utilisateur utilisateur, String nom, String prenom, String dateDeNaissance, String adresse, int codePostal, String ville, String login, String mdp) {
        super(nom, prenom, dateDeNaissance, adresse, codePostal, ville,  login, mdp);
        this.agence = agence;
        this.utilisateur = utilisateur;
    }

    @Override
    public String toString() {
        return "Responsable{" + "agence=" + agence + ", utilisateur=" + utilisateur + '}';
    }

    
    
    
   
   
    
    
    
   /***
    * generate code by power AMC
    */
   
   /** @pdGenerated default getter */
   public java.util.Collection<Agence> getAgence() {
      if (agence == null)
         agence = new java.util.HashSet<Agence>();
      return agence;
   }
   
   /** @pdGenerated default iterator getter */
   public java.util.Iterator getIteratorAgence() {
      if (agence == null)
         agence = new java.util.HashSet<Agence>();
      return agence.iterator();
   }
   
   /** @pdGenerated default setter
     * @param newAgence */
   public void setAgence(java.util.Collection<Agence> newAgence) {
      removeAllAgence();
      for (java.util.Iterator iter = newAgence.iterator(); iter.hasNext();)
         addAgence((Agence)iter.next());
   }
   
   /** @pdGenerated default add
     * @param newAgence */
   public void addAgence(Agence newAgence) {
      if (newAgence == null)
         return;
      if (this.agence == null)
         this.agence = new java.util.HashSet<Agence>();
      if (!this.agence.contains(newAgence))
      {
         this.agence.add(newAgence);
         newAgence.setResponsable(this);      
      }
   }
   
   /** @pdGenerated default remove
     * @param oldAgence */
   public void removeAgence(Agence oldAgence) {
      if (oldAgence == null)
         return;
      if (this.agence != null)
         if (this.agence.contains(oldAgence))
         {
            this.agence.remove(oldAgence);
            oldAgence.setResponsable((Responsable)null);
         }
   }
   
   /** @pdGenerated default removeAll */
   public void removeAllAgence() {
      if (agence != null)
      {
         Agence oldAgence;
         for (java.util.Iterator iter = getIteratorAgence(); iter.hasNext();)
         {
            oldAgence = (Agence)iter.next();
            iter.remove();
            oldAgence.setResponsable((Responsable)null);
         }
      }
   }
   /** @pdGenerated default parent getter */
   public Utilisateur getUtilisateur() {
      return utilisateur;
   }
   
  

}